(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

bagファイルから画像や動画に出力(エクスポート)する方法

Description: このチュートリアルはbagファイルから画像のメッセージを連続したjpeg画像にエクスポートする方法を説明した後, OGG Theoraの動画フォーマットにエンコードする方法に発展します.

Keywords: data, rosbag, record, play, info, bag, export, video

Tutorial Level: BEGINNER

Next Tutorial: フィルタされたbagファイルを生成する

チュートリアルの準備

このチュートリアルではjpeg画像もしくは動画にエクスポートするための画像データを含むbagファイルを過去に記録していることが必要になります. さらに, このチュートリアルはimage_viewパッケージがビルドされ, 多少の動画ユーティリティがインストールされていることも求められています.

   1 roscd image_view
   2 rosmake image_view --rosdep-install
   3 sudo aptitude install mjpegtools

これでチュートリアルを完了するために必要なツールがインストールされます. このチュートリアルの残りの部分では, .bagファイルが過去にtest.bagの名前で生成され, image_viewパッケージのディレクトリに格納されていることを前提としています.

jpegをbagファイルからエクスポートする

jpeg画像をbagファイルからエクスポートするには, まずデータをダンプ(展開)するためのlaunchファイルを作成する必要があります. この例では, /camera/image_rawを要求する画像データのトピックとして使用しています. 必要に応じて, この部分は置き換えが可能です.

   1 <launch>
   2   <node pkg="rosbag" type="play" name="rosbag" args="-d 2 $(find image_view)/test.bag"/>
   3   <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
   4     <remap from="image" to="/camera/image_raw"/>
   5   </node>
   6 </launch>

このlaunchファイルは以下のようにして実行することができます

   1 roslaunch export.launch

これによって, 画像名frame%04d.jpgの形式でホームディレクトリの".ros"フォルダの中にダンプされます. 処理が完了すると, process has finished cleanly. のようなメッセージが表示され, Ctrl-Cで立ち上げたプログラムを終了させます.

画像ファイルはどこでも扱いやすい場所に簡単に移動できます.

   1 cd ~
   2 mkdir test
   3 mv ~/.ros/frame*.jpg test/

jpegをOGG Theoraフォーマットの動画に変換する

この手順はここから参照できる情報に基づいており, 動作確認がとれているものです.

カメラが15フレーム毎秒で動作している場合, 適切な結果を得るためにシェルで以下のコマンドを実行します.

   1 cd ~/test
   2 jpeg2yuv -I p -f 15 -j frame%04d.jpg -b 1 > tmp.yuv
   3 ffmpeg2theora --optimize --videoquality 10 --videobitrate 16778 -o output.ogv tmp.yuv

もしくは, MPEG動画をjpegから直接生成します.

   1 cd ~/test
   2 mencoder "mf://*.jpg" -mf type=jpg:fps=15 -o output.mpg -speed 1 -ofps 30 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=2500 -oac copy -of mpeg

Wiki: ja/rosbag/Tutorials/Exporting image and video data (last edited 2014-10-06 11:30:59 by Moirai)